﻿using System.Collections.Generic;
using MongoDAO.Repository;
using MongoDAOTest.Entities;
using MongoDB.Driver.Builders;
using NUnit.Framework;

namespace MongoDAOTest
{
    [TestFixture]
    public class RepositoryTests : TestBase
    {
        private IRepository<Pessoa> _repository;
        private Pessoa _pessoa;

        [Test]
        public override void SetUp()
        {
            _repository = new Repository<Pessoa>(database);
            _repository.RemoveAll();

           _pessoa = _repository.Insert(new Pessoa()
            {
                Nome = "Teste",
                Idade = 20,
                Amigos = new List<Amigo>()
                    {
                        new Amigo(){Email = "someone@email.com", Nome = "Someone"},
                        new Amigo(){Email = "somebody@test.com", Nome = "Somebody"}
                    }
            });
        }

        [Test]
        public void Insert_Test()
        {

            Assert.IsNotNull(_repository.FindOne(x => x.Nome.Equals("Teste")));
        }

        [Test]
        public void UpdateById_Test()
        {
            _repository.UpdateById(_pessoa.Id, Update<Pessoa>.Set(x => x.Nome, "Testing"));
            Assert.AreEqual("Testing", _repository.FindOneById(_pessoa.Id).Nome);
        }



    }
}